/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Informacion.PuestoDeTrabajo.BEAN;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import sape.Conexion;

/**
 *
 * @author Nilo
 */
public class PrivilegiosBEAN {

    private Integer id; //prpidprivilegioxperfil
    private Integer idPrivilegio; //priidprivilegio
    private String privilegio;//prinombre
    private String privilegioDescripcion;//pridescripcion
    private String idPerfil;//peridperfil
    private String perfil; //pernombre
    private String perfilDescripcion;//perdescripcion
    private String sueldo;//persueldobase
    private String estadoPerfil;//perestado

    public static PrivilegiosBEAN getPrivilegio(int idPrivilegio) {
        ArrayList<PrivilegiosBEAN> lista = new ArrayList<PrivilegiosBEAN>();
        Conexion db = new Conexion();
        db.estableceConexion();
        try {
            Statement s = db.conexion.createStatement();

            String query = "select * from \"public\".privilegio where priidprivilegio=" + idPrivilegio + " ;";
            s.execute(query);
            ResultSet rs = s.getResultSet();

            if ((rs != null) && (rs.next())) {
                PrivilegiosBEAN privilegio = new PrivilegiosBEAN(rs.getString(2), rs.getString(3));
                privilegio.setId(rs.getInt(1));
                db.cierraConexion();
                return privilegio;
            }
            db.cierraConexion();
            return null;

        } catch (SQLException e) {
            db.cierraConexion();
            return null;
        }
    }

    public PrivilegiosBEAN(String privilegio, String descripcion) {
        this.id = -1;
        this.setPrivilegio(privilegio);
        this.setPrivilegioDescripcion(descripcion);
    }

    public PrivilegiosBEAN() {
    }

    public Integer getId() {
        if (this.id == -1) {
            System.out.println("WARNING: El Privilegio no tiene un ID asignado \n(no pertenece a la Base Datos");
        }
        return id;
    }

    public void setId(Integer id) {
        if (this.id != -1) {
            System.out.println("ERROR: el Privilegio ya tiene un ID asignado");
            return;
        }
        this.id = id;
    }

    public String getPrivilegio() {
        return privilegio;
    }

    public void setPrivilegio(String privilegio) {
        this.privilegio = privilegio;
    }

    public Integer getIdPrivilegio() {
        return idPrivilegio;
    }

    public void setIdPrivilegio(Integer idPrivilegio) {
        this.idPrivilegio = idPrivilegio;
    }

    public String getPrivilegioDescripcion() {
        return privilegioDescripcion;
    }

    public void setPrivilegioDescripcion(String privilegioDescripcion) {
        this.privilegioDescripcion = privilegioDescripcion;
    }

    public String getIdPerfil() {
        return idPerfil;
    }

    public void setIdPerfil(String idPerfil) {
        this.idPerfil = idPerfil;
    }

    public String getPerfil() {
        return perfil;
    }

    public void setPerfil(String perfil) {
        this.perfil = perfil;
    }

    public String getPerfilDescripcion() {
        return perfilDescripcion;
    }

    public void setPerfilDescripcion(String perfilDescripcion) {
        this.perfilDescripcion = perfilDescripcion;
    }

    public String getSueldo() {
        return sueldo;
    }

    public void setSueldo(String sueldo) {
        this.sueldo = sueldo;
    }

    public String getEstadoPerfil() {
        return estadoPerfil;
    }

    public void setEstadoPerfil(String estadoPerfil) {
        this.estadoPerfil = estadoPerfil;
    }

    public ArrayList getListaDePrivilegiosPuestoDeTrabajo(int idPerfilActual) {
        ArrayList<PrivilegiosBEAN> lista = new ArrayList<PrivilegiosBEAN>();
        Conexion db = new Conexion();
        db.estableceConexion();
        try {
            Statement s = db.conexion.createStatement();
            String query = "select b.prpidprivilegioxperfil, a.priidprivilegio, a.prinombre, a.pridescripcion, c.peridperfil, c.pernombre, c.perdescripcion, c.persueldobase, c.perestado from privilegio a, privilegioxperfil b, perfil c WHERE a.priidprivilegio=b.prpidprivilegio AND b.prpidperfil=c.peridperfil AND b.prpidperfil= " + idPerfilActual + ";";

            s.execute(query);
            ResultSet rs = s.getResultSet();
            while ((rs != null) && (rs.next())) {
                PrivilegiosBEAN privilegio = new PrivilegiosBEAN(rs.getString(2), rs.getString(3));
                privilegio.setId(rs.getInt(1));
                lista.add(privilegio);
            }
        } catch (Exception e) {
            db.cierraConexion();
            return null;
        }
        db.cierraConexion();
        return lista;
    }

    public static ArrayList getListaDePrivilegios() {
        ArrayList<PrivilegiosBEAN> lista = new ArrayList<PrivilegiosBEAN>();
        Conexion db = new Conexion();
        db.estableceConexion();
        try {
            Statement s = db.conexion.createStatement();
            String query = "select * from privilegio;";

            s.execute(query);
            ResultSet rs = s.getResultSet();
            while ((rs != null) && (rs.next())) {
                PrivilegiosBEAN privilegio = new PrivilegiosBEAN(rs.getString(2), rs.getString(3));
                privilegio.setId(rs.getInt(1));
                lista.add(privilegio);
            }
        } catch (Exception e) {
            db.cierraConexion();
            return null;
        }
        db.cierraConexion();
        return lista;
    }
}
